/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package IO.XML;

import java.util.ArrayList;
import java.util.List;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;

 
public class HandlerPersonaje extends DefaultHandler {
 
    //List to hold Employees object
    private List<Personaje> personajeList = null;
    private Personaje personaje = null;
 
 
    //getter method for employee list
    public List<Personaje> getPersonajeList() {
        return personajeList;
    }
 
 
    boolean bNombre = false;
    boolean bOrientacion = false;
 
 
    @Override
    public void startElement(String uri, String localName, String qName, Attributes attributes)
            throws SAXException {
        if (qName.equalsIgnoreCase("personaje")) {
            //create a new Employee and put it in Map
            String nombre = attributes.getValue("nombre");
            //initialize Employee object and set nombre attribute
            personaje = new Personaje();
            personaje.setNombre(nombre);
            if (personajeList == null)
                personajeList = new ArrayList<>();
        } else if (qName.equalsIgnoreCase("nombre")) {
            bNombre = true;
        } else if (qName.equalsIgnoreCase("orientacion")) {
            bOrientacion = true;
        }
    }
 

    @Override
    public void endElement(String uri, String localName, String qName) {
        if (qName.equalsIgnoreCase("personaje")) {
            //add Employee object to list
            personajeList.add(personaje);
        }
    }
 
 
    @Override
    public void characters(char ch[], int start, int length) {
        if (bNombre) {
            //age element, set Employee age
            personaje.setNombre(new String(ch, start, length));
            bNombre = false;
        } else if (bOrientacion) {
            personaje.setOrientacion(new String(ch, start, length));
            bOrientacion = false;
        }
    }
}